/***********************************************************************\
*                                                                       *
* This file was created by Component Internal Interface Engine software *
*  Copyright(c) 2000-2012 by Krzysztof Pozniak (pozniak@ise.pw.edu.pl)  *
*                           All Rights Reserved.                        *
*                                                                       *
\***********************************************************************/

package cii_kx1_bpf3;

import cii_lib.*;

public class CCII_TIMER {

  public CCII_COMPONENT _CII_TIMER;

  private CCII_ACCESS_IPAR _IPAR_TIMER_WIDTH;
  private CCII_ACCESS_IPAR _IPAR_TRG_SEL_NUM;
  private CCII_ACCESS_IPAR _IPAR_TRG_SEL_WIDTH;
  public class CMPAR_TRG_DEL_MODEL extends CCII_ACCESS_MPAR {
    public CMPAR_TRG_DEL_MODEL(CCII_TABLE_INDEX itab, CCII_COMPONENT comp) { super(itab,comp);}
    public CCII_MOD_DEL.CLIST_MODEL GetList() {return(CCII_MOD_DEL.LIST_MODEL);}
  };
  private CMPAR_TRG_DEL_MODEL _MPAR_TRG_DEL_MODEL;
  private CCII_ACCESS_IPAR _IPAR_TRG_DEL_MAX;
  public class CMPAR_CLK_ENA_CII extends CCII_ACCESS_MPAR {
    public CMPAR_CLK_ENA_CII(CCII_TABLE_INDEX itab, CCII_COMPONENT comp) { super(itab,comp);}
    public CCIISYS.CLIST_INTERF_STAT GetList() {return(CCIISYS.LIST_INTERF_STAT);}
  };
  private CMPAR_CLK_ENA_CII _MPAR_CLK_ENA_CII;
  private CCII_ACCESS_LPAR _LPAR_REPEAT_CII;
  private CCII_ACCESS_LPAR _LPAR_PROC_CII;
  private CCII_ACCESS_IPAR _IPAR_TRG_DEL_WIDTH;
  private CCII_ACCESS_IR _BITS_START;
  private CCII_ACCESS_RO _BITS_STOP;
  private CCII_ACCESS_IR _BITS_CLK_ENA;
  private CCII_ACCESS_IR _BITS_REPEAT;
  private CCII_ACCESS_IR _BITS_PROC_REQ;
  private CCII_ACCESS_RO _BITS_PROC_ACK;
  private CCII_ACCESS_IR _BITS_TRG_SEL;
  private CCII_ACCESS_IR _WORD_LIMIT;
  private CCII_ACCESS_RO _WORD_COUNT;
  private CCII_MOD_DEL[] _COMP_DELAY;
  public CCII_TIMER(CCII_TABLE_INDEX itab, int cidx, CCII_INTERFACE interf, CCII_COMPONENT parent) {
    _CII_TIMER=new CCII_COMPONENT(itab,cidx,parent);
    _IPAR_TIMER_WIDTH=null;
    _IPAR_TRG_SEL_NUM=null;
    _IPAR_TRG_SEL_WIDTH=null;
    _MPAR_TRG_DEL_MODEL=null;
    _IPAR_TRG_DEL_MAX=null;
    _MPAR_CLK_ENA_CII=null;
    _LPAR_REPEAT_CII=null;
    _LPAR_PROC_CII=null;
    _IPAR_TRG_DEL_WIDTH=null;
    _BITS_START=null;
    _BITS_STOP=null;
    _BITS_CLK_ENA=null;
    _BITS_REPEAT=null;
    _BITS_PROC_REQ=null;
    _BITS_PROC_ACK=null;
    _BITS_TRG_SEL=null;
    _WORD_LIMIT=null;
    _WORD_COUNT=null;
    _COMP_DELAY=null;
    int _cnum_;
    if(_CII_TIMER.Number()==0) return;
    _IPAR_TIMER_WIDTH = new CCII_ACCESS_IPAR(itab,_CII_TIMER);
    _IPAR_TRG_SEL_NUM = new CCII_ACCESS_IPAR(itab,_CII_TIMER);
    _IPAR_TRG_SEL_WIDTH = new CCII_ACCESS_IPAR(itab,_CII_TIMER);
    _MPAR_TRG_DEL_MODEL = new CMPAR_TRG_DEL_MODEL(itab,_CII_TIMER);
    _IPAR_TRG_DEL_MAX = new CCII_ACCESS_IPAR(itab,_CII_TIMER);
    _MPAR_CLK_ENA_CII = new CMPAR_CLK_ENA_CII(itab,_CII_TIMER);
    _LPAR_REPEAT_CII = new CCII_ACCESS_LPAR(itab,_CII_TIMER);
    _LPAR_PROC_CII = new CCII_ACCESS_LPAR(itab,_CII_TIMER);
    _IPAR_TRG_DEL_WIDTH = new CCII_ACCESS_IPAR(itab,_CII_TIMER);
    _BITS_START = new CCII_ACCESS_IR(itab,interf,_CII_TIMER);
    _BITS_STOP = new CCII_ACCESS_RO(itab,interf,_CII_TIMER);
    _BITS_CLK_ENA = new CCII_ACCESS_IR(itab,interf,_CII_TIMER);
    _BITS_REPEAT = new CCII_ACCESS_IR(itab,interf,_CII_TIMER);
    _BITS_PROC_REQ = new CCII_ACCESS_IR(itab,interf,_CII_TIMER);
    _BITS_PROC_ACK = new CCII_ACCESS_RO(itab,interf,_CII_TIMER);
    _BITS_TRG_SEL = new CCII_ACCESS_IR(itab,interf,_CII_TIMER);
    _WORD_LIMIT = new CCII_ACCESS_IR(itab,interf,_CII_TIMER);
    _WORD_COUNT = new CCII_ACCESS_RO(itab,interf,_CII_TIMER);
    _COMP_DELAY = new CCII_MOD_DEL[_cnum_=Math.max(itab.GetItem().Repeat,1)];
    for (int count=0; count<_cnum_; count ++)
      _COMP_DELAY[count]=new CCII_MOD_DEL(itab,count,interf,_CII_TIMER);
  }
  public CCII_COMPONENT CII_TIMER() {return(_CII_TIMER.Number()==0?null:_CII_TIMER);};
  public CCII_ACCESS_IPAR IPAR_TIMER_WIDTH() {return(_IPAR_TIMER_WIDTH);};
  public CCII_ACCESS_IPAR IPAR_TRG_SEL_NUM() {return(_IPAR_TRG_SEL_NUM);};
  public CCII_ACCESS_IPAR IPAR_TRG_SEL_WIDTH() {return(_IPAR_TRG_SEL_WIDTH);};
  public CMPAR_TRG_DEL_MODEL MPAR_TRG_DEL_MODEL() {return(_MPAR_TRG_DEL_MODEL);};
  public CCII_ACCESS_IPAR IPAR_TRG_DEL_MAX() {return(_IPAR_TRG_DEL_MAX);};
  public CMPAR_CLK_ENA_CII MPAR_CLK_ENA_CII() {return(_MPAR_CLK_ENA_CII);};
  public CCII_ACCESS_LPAR LPAR_REPEAT_CII() {return(_LPAR_REPEAT_CII);};
  public CCII_ACCESS_LPAR LPAR_PROC_CII() {return(_LPAR_PROC_CII);};
  public CCII_ACCESS_IPAR IPAR_TRG_DEL_WIDTH() {return(_IPAR_TRG_DEL_WIDTH);};
  public CCII_ACCESS_IR BITS_START() {return(_BITS_START);};
  public CCII_ACCESS_RO BITS_STOP() {return(_BITS_STOP);};
  public CCII_ACCESS_IR BITS_CLK_ENA() {return(_BITS_CLK_ENA);};
  public CCII_ACCESS_IR BITS_REPEAT() {return(_BITS_REPEAT);};
  public CCII_ACCESS_IR BITS_PROC_REQ() {return(_BITS_PROC_REQ);};
  public CCII_ACCESS_RO BITS_PROC_ACK() {return(_BITS_PROC_ACK);};
  public CCII_ACCESS_IR BITS_TRG_SEL() {return(_BITS_TRG_SEL);};
  public CCII_ACCESS_IR WORD_LIMIT() {return(_WORD_LIMIT);};
  public CCII_ACCESS_RO WORD_COUNT() {return(_WORD_COUNT);};
  public CCII_MOD_DEL COMP_DELAY(int num) {return(_COMP_DELAY[num].CII_MOD_DEL()==null?null:_COMP_DELAY[num]);};
}
